<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621679535939"><span id="local-6989586621679535940"><span id="local-6989586621679535941"><span id="local-6989586621679535942"><span id="local-6989586621679535943"><span id="local-6989586621679535944"></span></span></span></span></span></span><span class="hs-pragma">{-# LANGUAGE Trustworthy #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE NoImplicitPrelude, BangPatterns #-}</span><span>
</span><span id="line-3"></span><span>
</span><span id="line-4"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- Module      :  GHC.IO.Device</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- Copyright   :  (c) The University of Glasgow, 1994-2008</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- License     :  see libraries/base/LICENSE</span><span>
</span><span id="line-9"></span><span class="hs-comment">--</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Maintainer  :  libraries@haskell.org</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- Stability   :  internal</span><span>
</span><span id="line-12"></span><span class="hs-comment">-- Portability :  non-portable</span><span>
</span><span id="line-13"></span><span class="hs-comment">--</span><span>
</span><span id="line-14"></span><span class="hs-comment">-- Type classes for I/O providers.</span><span>
</span><span id="line-15"></span><span class="hs-comment">--</span><span>
</span><span id="line-16"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-17"></span><span>
</span><span id="line-18"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.IO.Device</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-19"></span><span>        </span><span class="annot"><a href="GHC.IO.Device.html#RawIO"><span class="hs-identifier">RawIO</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-20"></span><span>        </span><span class="annot"><a href="GHC.IO.Device.html#IODevice"><span class="hs-identifier">IODevice</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-21"></span><span>        </span><span class="annot"><a href="GHC.IO.Device.html#IODeviceType"><span class="hs-identifier">IODeviceType</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-22"></span><span>        </span><span class="annot"><a href="GHC.IO.Device.html#SeekMode"><span class="hs-identifier">SeekMode</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-23"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-24"></span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Base.html"><span class="hs-identifier">GHC.Base</span></a></span><span>
</span><span id="line-26"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Word.html"><span class="hs-identifier">GHC.Word</span></a></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Arr.html"><span class="hs-identifier">GHC.Arr</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Enum.html"><span class="hs-identifier">GHC.Enum</span></a></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Read.html"><span class="hs-identifier">GHC.Read</span></a></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Show.html"><span class="hs-identifier">GHC.Show</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Ptr.html"><span class="hs-identifier">GHC.Ptr</span></a></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Num.html"><span class="hs-identifier">GHC.Num</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.IO.html"><span class="hs-identifier">GHC.IO</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="annot"><a href="GHC.IO.Exception.html"><span class="hs-identifier">GHC.IO.Exception</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.IO.Exception.html#unsupportedOperation"><span class="hs-identifier">unsupportedOperation</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-35"></span><span>
</span><span id="line-36"></span><span class="hs-comment">-- | A low-level I/O provider where the data is bytes in memory.</span><span>
</span><span id="line-37"></span><span class="hs-comment">--   The Word64 offsets currently have no effect on POSIX system or consoles</span><span>
</span><span id="line-38"></span><span class="hs-comment">--   where the implicit behaviour of the C runtime is assume to move the file</span><span>
</span><span id="line-39"></span><span class="hs-comment">--   pointer on every read/write without needing an explicit seek.</span><span>
</span><span id="line-40"></span><span class="hs-keyword">class</span><span> </span><span id="RawIO"><span class="annot"><a href="GHC.IO.Device.html#RawIO"><span class="hs-identifier hs-var">RawIO</span></a></span></span><span> </span><span id="local-6989586621679535936"><span class="annot"><a href="#local-6989586621679535936"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-41"></span><span>  </span><span class="hs-comment">-- | Read up to the specified number of bytes starting from a specified</span><span>
</span><span id="line-42"></span><span>  </span><span class="hs-comment">-- offset, returning the number of bytes actually read.  This function</span><span>
</span><span id="line-43"></span><span>  </span><span class="hs-comment">-- should only block if there is no data available.  If there is not enough</span><span>
</span><span id="line-44"></span><span>  </span><span class="hs-comment">-- data available, then the function should just return the available data.</span><span>
</span><span id="line-45"></span><span>  </span><span class="hs-comment">-- A return value of zero indicates that the end of the data stream (e.g. end</span><span>
</span><span id="line-46"></span><span>  </span><span class="hs-comment">-- of file) has been reached.</span><span>
</span><span id="line-47"></span><span>  </span><span id="read"><span class="annot"><a href="GHC.IO.Device.html#read"><span class="hs-identifier hs-type">read</span></a></span></span><span>                </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535936"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Ptr.html#Ptr"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="annot"><a href="GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Word.html#Word64"><span class="hs-identifier hs-type">Word64</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span>
</span><span id="line-48"></span><span>
</span><span id="line-49"></span><span>  </span><span class="hs-comment">-- | Read up to the specified number of bytes starting from a specified</span><span>
</span><span id="line-50"></span><span>  </span><span class="hs-comment">-- offset, returning the number of bytes actually read, or 'Nothing' if</span><span>
</span><span id="line-51"></span><span>  </span><span class="hs-comment">-- the end of the stream has been reached.</span><span>
</span><span id="line-52"></span><span>  </span><span id="readNonBlocking"><span class="annot"><a href="GHC.IO.Device.html#readNonBlocking"><span class="hs-identifier hs-type">readNonBlocking</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535936"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Ptr.html#Ptr"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="annot"><a href="GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Word.html#Word64"><span class="hs-identifier hs-type">Word64</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-53"></span><span>
</span><span id="line-54"></span><span>  </span><span class="hs-comment">-- | Write the specified number of bytes starting at a given offset.</span><span>
</span><span id="line-55"></span><span>  </span><span id="write"><span class="annot"><a href="GHC.IO.Device.html#write"><span class="hs-identifier hs-type">write</span></a></span></span><span>               </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535936"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Ptr.html#Ptr"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="annot"><a href="GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Word.html#Word64"><span class="hs-identifier hs-type">Word64</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-56"></span><span>
</span><span id="line-57"></span><span>  </span><span class="hs-comment">-- | Write up to the specified number of bytes without blocking starting at a</span><span>
</span><span id="line-58"></span><span>  </span><span class="hs-comment">-- given offset.  Returns the actual number of bytes written.</span><span>
</span><span id="line-59"></span><span>  </span><span id="writeNonBlocking"><span class="annot"><a href="GHC.IO.Device.html#writeNonBlocking"><span class="hs-identifier hs-type">writeNonBlocking</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535936"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Ptr.html#Ptr"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="annot"><a href="GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Word.html#Word64"><span class="hs-identifier hs-type">Word64</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span>
</span><span id="line-62"></span><span class="hs-comment">-- | I/O operations required for implementing a 'System.IO.Handle'.</span><span>
</span><span id="line-63"></span><span class="hs-keyword">class</span><span> </span><span id="IODevice"><span class="annot"><a href="GHC.IO.Device.html#IODevice"><span class="hs-identifier hs-var">IODevice</span></a></span></span><span> </span><span id="local-6989586621679535983"><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-64"></span><span>  </span><span class="hs-comment">-- | @ready dev write msecs@ returns 'True' if the device has data</span><span>
</span><span id="line-65"></span><span>  </span><span class="hs-comment">-- to read (if @write@ is 'False') or space to write new data (if</span><span>
</span><span id="line-66"></span><span>  </span><span class="hs-comment">-- @write@ is 'True').  @msecs@ specifies how long to wait, in</span><span>
</span><span id="line-67"></span><span>  </span><span class="hs-comment">-- milliseconds.</span><span>
</span><span id="line-68"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-69"></span><span>  </span><span id="ready"><span class="annot"><a href="GHC.IO.Device.html#ready"><span class="hs-identifier hs-type">ready</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-70"></span><span>
</span><span id="line-71"></span><span>  </span><span class="hs-comment">-- | closes the device.  Further operations on the device should</span><span>
</span><span id="line-72"></span><span>  </span><span class="hs-comment">-- produce exceptions.</span><span>
</span><span id="line-73"></span><span>  </span><span id="close"><span class="annot"><a href="GHC.IO.Device.html#close"><span class="hs-identifier hs-type">close</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-74"></span><span>
</span><span id="line-75"></span><span>  </span><span class="hs-comment">-- | returns 'True' if the device is a terminal or console.</span><span>
</span><span id="line-76"></span><span>  </span><span id="isTerminal"><span class="annot"><a href="GHC.IO.Device.html#isTerminal"><span class="hs-identifier hs-type">isTerminal</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-77"></span><span>  </span><span id="local-6989586621679535927"><span class="annot"><a href="GHC.IO.Device.html#isTerminal"><span class="hs-identifier hs-var hs-var">isTerminal</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IO Bool
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span></span><span>
</span><span id="line-78"></span><span>
</span><span id="line-79"></span><span>  </span><span class="hs-comment">-- | returns 'True' if the device supports 'seek' operations.</span><span>
</span><span id="line-80"></span><span>  </span><span id="isSeekable"><span class="annot"><a href="GHC.IO.Device.html#isSeekable"><span class="hs-identifier hs-type">isSeekable</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-81"></span><span>  </span><span id="local-6989586621679535923"><span class="annot"><a href="GHC.IO.Device.html#isSeekable"><span class="hs-identifier hs-var hs-var">isSeekable</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IO Bool
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span></span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span>  </span><span class="hs-comment">-- | seek to the specified position in the data.</span><span>
</span><span id="line-84"></span><span>  </span><span id="seek"><span class="annot"><a href="GHC.IO.Device.html#seek"><span class="hs-identifier hs-type">seek</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.IO.Device.html#SeekMode"><span class="hs-identifier hs-type">SeekMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-bignum/src/GHC.Num.Integer.html#Integer"><span class="hs-identifier hs-type">Integer</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-bignum/src/GHC.Num.Integer.html#Integer"><span class="hs-identifier hs-type">Integer</span></a></span><span>
</span><span id="line-85"></span><span>  </span><span id="local-6989586621679535920"><span class="annot"><a href="GHC.IO.Device.html#seek"><span class="hs-identifier hs-var hs-var">seek</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SeekMode
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO Integer
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span>  </span><span class="hs-comment">-- | return the current position in the data.</span><span>
</span><span id="line-88"></span><span>  </span><span id="tell"><span class="annot"><a href="GHC.IO.Device.html#tell"><span class="hs-identifier hs-type">tell</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-bignum/src/GHC.Num.Integer.html#Integer"><span class="hs-identifier hs-type">Integer</span></a></span><span>
</span><span id="line-89"></span><span>  </span><span id="local-6989586621679535917"><span class="annot"><a href="GHC.IO.Device.html#tell"><span class="hs-identifier hs-var hs-var">tell</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO Integer
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-90"></span><span>
</span><span id="line-91"></span><span>  </span><span class="hs-comment">-- | return the size of the data.</span><span>
</span><span id="line-92"></span><span>  </span><span id="getSize"><span class="annot"><a href="GHC.IO.Device.html#getSize"><span class="hs-identifier hs-type">getSize</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-bignum/src/GHC.Num.Integer.html#Integer"><span class="hs-identifier hs-type">Integer</span></a></span><span>
</span><span id="line-93"></span><span>  </span><span id="local-6989586621679535915"><span class="annot"><a href="GHC.IO.Device.html#getSize"><span class="hs-identifier hs-var hs-var">getSize</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO Integer
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-94"></span><span>
</span><span id="line-95"></span><span>  </span><span class="hs-comment">-- | change the size of the data.</span><span>
</span><span id="line-96"></span><span>  </span><span id="setSize"><span class="annot"><a href="GHC.IO.Device.html#setSize"><span class="hs-identifier hs-type">setSize</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-bignum/src/GHC.Num.Integer.html#Integer"><span class="hs-identifier hs-type">Integer</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-97"></span><span>  </span><span id="local-6989586621679535913"><span class="annot"><a href="GHC.IO.Device.html#setSize"><span class="hs-identifier hs-var hs-var">setSize</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO ()
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-98"></span><span>
</span><span id="line-99"></span><span>  </span><span class="hs-comment">-- | for terminal devices, changes whether characters are echoed on</span><span>
</span><span id="line-100"></span><span>  </span><span class="hs-comment">-- the device.</span><span>
</span><span id="line-101"></span><span>  </span><span id="setEcho"><span class="annot"><a href="GHC.IO.Device.html#setEcho"><span class="hs-identifier hs-type">setEcho</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-102"></span><span>  </span><span id="local-6989586621679535911"><span class="annot"><a href="GHC.IO.Device.html#setEcho"><span class="hs-identifier hs-var hs-var">setEcho</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO ()
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-103"></span><span>
</span><span id="line-104"></span><span>  </span><span class="hs-comment">-- | returns the current echoing status.</span><span>
</span><span id="line-105"></span><span>  </span><span id="getEcho"><span class="annot"><a href="GHC.IO.Device.html#getEcho"><span class="hs-identifier hs-type">getEcho</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-106"></span><span>  </span><span id="local-6989586621679535909"><span class="annot"><a href="GHC.IO.Device.html#getEcho"><span class="hs-identifier hs-var hs-var">getEcho</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO Bool
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-107"></span><span>
</span><span id="line-108"></span><span>  </span><span class="hs-comment">-- | some devices (e.g. terminals) support a &quot;raw&quot; mode where</span><span>
</span><span id="line-109"></span><span>  </span><span class="hs-comment">-- characters entered are immediately made available to the program.</span><span>
</span><span id="line-110"></span><span>  </span><span class="hs-comment">-- If available, this operations enables raw mode.</span><span>
</span><span id="line-111"></span><span>  </span><span id="setRaw"><span class="annot"><a href="GHC.IO.Device.html#setRaw"><span class="hs-identifier hs-type">setRaw</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-112"></span><span>  </span><span id="local-6989586621679535907"><span class="annot"><a href="GHC.IO.Device.html#setRaw"><span class="hs-identifier hs-var hs-var">setRaw</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO ()
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-113"></span><span>
</span><span id="line-114"></span><span>  </span><span class="hs-comment">-- | returns the 'IODeviceType' corresponding to this device.</span><span>
</span><span id="line-115"></span><span>  </span><span id="devType"><span class="annot"><a href="GHC.IO.Device.html#devType"><span class="hs-identifier hs-type">devType</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="GHC.IO.Device.html#IODeviceType"><span class="hs-identifier hs-type">IODeviceType</span></a></span><span>
</span><span id="line-116"></span><span>
</span><span id="line-117"></span><span>  </span><span class="hs-comment">-- | duplicates the device, if possible.  The new device is expected</span><span>
</span><span id="line-118"></span><span>  </span><span class="hs-comment">-- to share a file pointer with the original device (like Unix @dup@).</span><span>
</span><span id="line-119"></span><span>  </span><span id="dup"><span class="annot"><a href="GHC.IO.Device.html#dup"><span class="hs-identifier hs-type">dup</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-120"></span><span>  </span><span id="local-6989586621679535904"><span class="annot"><a href="GHC.IO.Device.html#dup"><span class="hs-identifier hs-var hs-var">dup</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO a
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span>  </span><span class="hs-comment">-- | @dup2 source target@ replaces the target device with the source</span><span>
</span><span id="line-123"></span><span>  </span><span class="hs-comment">-- device.  The target device is closed first, if necessary, and then</span><span>
</span><span id="line-124"></span><span>  </span><span class="hs-comment">-- it is made into a duplicate of the first device (like Unix @dup2@).</span><span>
</span><span id="line-125"></span><span>  </span><span id="dup2"><span class="annot"><a href="GHC.IO.Device.html#dup2"><span class="hs-identifier hs-type">dup2</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679535983"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-126"></span><span>  </span><span id="local-6989586621679535902"><span class="annot"><a href="GHC.IO.Device.html#dup2"><span class="hs-identifier hs-var hs-var">dup2</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO a
forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var">ioe_unsupportedOperation</span></a></span></span><span>
</span><span id="line-127"></span><span>
</span><span id="line-128"></span><span id="local-6989586621679535979"><span class="annot"><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-type">ioe_unsupportedOperation</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679535979"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-129"></span><span id="ioe_unsupportedOperation"><span class="annot"><span class="annottext">ioe_unsupportedOperation :: forall a. IO a
</span><a href="GHC.IO.Device.html#ioe_unsupportedOperation"><span class="hs-identifier hs-var hs-var">ioe_unsupportedOperation</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IOError -&gt; IO a
forall e a. Exception e =&gt; e -&gt; IO a
</span><a href="GHC.IO.html#throwIO"><span class="hs-identifier hs-var">throwIO</span></a></span><span> </span><span class="annot"><span class="annottext">IOError
</span><a href="GHC.IO.Exception.html#unsupportedOperation"><span class="hs-identifier hs-var">unsupportedOperation</span></a></span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span class="hs-comment">-- | Type of a device that can be used to back a</span><span>
</span><span id="line-132"></span><span class="hs-comment">-- 'GHC.IO.Handle.Handle' (see also 'GHC.IO.Handle.mkFileHandle'). The</span><span>
</span><span id="line-133"></span><span class="hs-comment">-- standard libraries provide creation of 'GHC.IO.Handle.Handle's via</span><span>
</span><span id="line-134"></span><span class="hs-comment">-- Posix file operations with file descriptors (see</span><span>
</span><span id="line-135"></span><span class="hs-comment">-- 'GHC.IO.Handle.FD.mkHandleFromFD') with FD being the underlying</span><span>
</span><span id="line-136"></span><span class="hs-comment">-- 'GHC.IO.Device.IODevice' instance.</span><span>
</span><span id="line-137"></span><span class="hs-comment">--</span><span>
</span><span id="line-138"></span><span class="hs-comment">-- Users may provide custom instances of 'GHC.IO.Device.IODevice'</span><span>
</span><span id="line-139"></span><span class="hs-comment">-- which are expected to conform the following rules:</span><span>
</span><span id="line-140"></span><span>
</span><span id="line-141"></span><span class="hs-keyword">data</span><span> </span><span id="IODeviceType"><span class="annot"><a href="GHC.IO.Device.html#IODeviceType"><span class="hs-identifier hs-var">IODeviceType</span></a></span></span><span>
</span><span id="line-142"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="Directory"><span class="annot"><a href="GHC.IO.Device.html#Directory"><span class="hs-identifier hs-var">Directory</span></a></span></span><span> </span><span class="hs-comment">-- ^ The standard libraries do not have direct support</span><span>
</span><span id="line-143"></span><span>              </span><span class="hs-comment">-- for this device type, but a user implementation is</span><span>
</span><span id="line-144"></span><span>              </span><span class="hs-comment">-- expected to provide a list of file names in</span><span>
</span><span id="line-145"></span><span>              </span><span class="hs-comment">-- the directory, in any order, separated by @\'\\0\'@</span><span>
</span><span id="line-146"></span><span>              </span><span class="hs-comment">-- characters, excluding the @&quot;.&quot;@ and @&quot;..&quot;@ names. See</span><span>
</span><span id="line-147"></span><span>              </span><span class="hs-comment">-- also 'System.Directory.getDirectoryContents'.  Seek</span><span>
</span><span id="line-148"></span><span>              </span><span class="hs-comment">-- operations are not supported on directories (other</span><span>
</span><span id="line-149"></span><span>              </span><span class="hs-comment">-- than to the zero position).</span><span>
</span><span id="line-150"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="Stream"><span class="annot"><a href="GHC.IO.Device.html#Stream"><span class="hs-identifier hs-var">Stream</span></a></span></span><span>    </span><span class="hs-comment">-- ^ A duplex communications channel (results in</span><span>
</span><span id="line-151"></span><span>              </span><span class="hs-comment">-- creation of a duplex 'GHC.IO.Handle.Handle'). The</span><span>
</span><span id="line-152"></span><span>              </span><span class="hs-comment">-- standard libraries use this device type when</span><span>
</span><span id="line-153"></span><span>              </span><span class="hs-comment">-- creating 'GHC.IO.Handle.Handle's for open sockets.</span><span>
</span><span id="line-154"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="RegularFile"><span class="annot"><a href="GHC.IO.Device.html#RegularFile"><span class="hs-identifier hs-var">RegularFile</span></a></span></span><span> </span><span class="hs-comment">-- ^ A file that may be read or written, and also</span><span>
</span><span id="line-155"></span><span>                </span><span class="hs-comment">-- may be seekable.</span><span>
</span><span id="line-156"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="RawDevice"><span class="annot"><a href="GHC.IO.Device.html#RawDevice"><span class="hs-identifier hs-var">RawDevice</span></a></span></span><span> </span><span class="hs-comment">-- ^ A &quot;raw&quot; (disk) device which supports block binary</span><span>
</span><span id="line-157"></span><span>              </span><span class="hs-comment">-- read and write operations and may be seekable only</span><span>
</span><span id="line-158"></span><span>              </span><span class="hs-comment">-- to positions of certain granularity (block-</span><span>
</span><span id="line-159"></span><span>              </span><span class="hs-comment">-- aligned).</span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span> </span><span id="local-6989586621679535891"><span id="local-6989586621679535893"><span class="annot"><span class="annottext">IODeviceType -&gt; IODeviceType -&gt; Bool
(IODeviceType -&gt; IODeviceType -&gt; Bool)
-&gt; (IODeviceType -&gt; IODeviceType -&gt; Bool) -&gt; Eq IODeviceType
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: IODeviceType -&gt; IODeviceType -&gt; Bool
$c/= :: IODeviceType -&gt; IODeviceType -&gt; Bool
== :: IODeviceType -&gt; IODeviceType -&gt; Bool
$c== :: IODeviceType -&gt; IODeviceType -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#Eq"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span> </span><span class="hs-comment">-- ^ @since 4.2.0.0</span><span>
</span><span id="line-161"></span><span>           </span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span>
</span><span id="line-163"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-164"></span><span class="hs-comment">-- SeekMode type</span><span>
</span><span id="line-165"></span><span>
</span><span id="line-166"></span><span class="hs-comment">-- | A mode that determines the effect of 'System.IO.hSeek' @hdl mode i@.</span><span>
</span><span id="line-167"></span><span class="hs-keyword">data</span><span> </span><span id="SeekMode"><span class="annot"><a href="GHC.IO.Device.html#SeekMode"><span class="hs-identifier hs-var">SeekMode</span></a></span></span><span>
</span><span id="line-168"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="AbsoluteSeek"><span class="annot"><a href="GHC.IO.Device.html#AbsoluteSeek"><span class="hs-identifier hs-var">AbsoluteSeek</span></a></span></span><span>        </span><span class="hs-comment">-- ^ the position of @hdl@ is set to @i@.</span><span>
</span><span id="line-169"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="RelativeSeek"><span class="annot"><a href="GHC.IO.Device.html#RelativeSeek"><span class="hs-identifier hs-var">RelativeSeek</span></a></span></span><span>        </span><span class="hs-comment">-- ^ the position of @hdl@ is set to offset @i@</span><span>
</span><span id="line-170"></span><span>                        </span><span class="hs-comment">-- from the current position.</span><span>
</span><span id="line-171"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="SeekFromEnd"><span class="annot"><a href="GHC.IO.Device.html#SeekFromEnd"><span class="hs-identifier hs-var">SeekFromEnd</span></a></span></span><span>         </span><span class="hs-comment">-- ^ the position of @hdl@ is set to offset @i@</span><span>
</span><span id="line-172"></span><span>                        </span><span class="hs-comment">-- from the end of the file.</span><span>
</span><span id="line-173"></span><span>    </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span> </span><span id="local-6989586621679535883"><span id="local-6989586621679535885"><span class="annot"><span class="annottext">SeekMode -&gt; SeekMode -&gt; Bool
(SeekMode -&gt; SeekMode -&gt; Bool)
-&gt; (SeekMode -&gt; SeekMode -&gt; Bool) -&gt; Eq SeekMode
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: SeekMode -&gt; SeekMode -&gt; Bool
$c/= :: SeekMode -&gt; SeekMode -&gt; Bool
== :: SeekMode -&gt; SeekMode -&gt; Bool
$c== :: SeekMode -&gt; SeekMode -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#Eq"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span>   </span><span class="hs-comment">-- ^ @since 4.2.0.0</span><span>
</span><span id="line-174"></span><span>             </span><span class="hs-special">,</span><span> </span><span id="local-6989586621679535864"><span id="local-6989586621679535866"><span id="local-6989586621679535869"><span id="local-6989586621679535872"><span id="local-6989586621679535875"><span id="local-6989586621679535877"><span id="local-6989586621679535879"><span class="annot"><span class="annottext">Eq SeekMode
Eq SeekMode
-&gt; (SeekMode -&gt; SeekMode -&gt; Ordering)
-&gt; (SeekMode -&gt; SeekMode -&gt; Bool)
-&gt; (SeekMode -&gt; SeekMode -&gt; Bool)
-&gt; (SeekMode -&gt; SeekMode -&gt; Bool)
-&gt; (SeekMode -&gt; SeekMode -&gt; Bool)
-&gt; (SeekMode -&gt; SeekMode -&gt; SeekMode)
-&gt; (SeekMode -&gt; SeekMode -&gt; SeekMode)
-&gt; Ord SeekMode
SeekMode -&gt; SeekMode -&gt; Bool
SeekMode -&gt; SeekMode -&gt; Ordering
SeekMode -&gt; SeekMode -&gt; SeekMode
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: SeekMode -&gt; SeekMode -&gt; SeekMode
$cmin :: SeekMode -&gt; SeekMode -&gt; SeekMode
max :: SeekMode -&gt; SeekMode -&gt; SeekMode
$cmax :: SeekMode -&gt; SeekMode -&gt; SeekMode
&gt;= :: SeekMode -&gt; SeekMode -&gt; Bool
$c&gt;= :: SeekMode -&gt; SeekMode -&gt; Bool
&gt; :: SeekMode -&gt; SeekMode -&gt; Bool
$c&gt; :: SeekMode -&gt; SeekMode -&gt; Bool
&lt;= :: SeekMode -&gt; SeekMode -&gt; Bool
$c&lt;= :: SeekMode -&gt; SeekMode -&gt; Bool
&lt; :: SeekMode -&gt; SeekMode -&gt; Bool
$c&lt; :: SeekMode -&gt; SeekMode -&gt; Bool
compare :: SeekMode -&gt; SeekMode -&gt; Ordering
$ccompare :: SeekMode -&gt; SeekMode -&gt; Ordering
</span><a href="../../ghc-prim/src/GHC.Classes.html#Ord"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></a></span></span></span></span></span></span></span></span><span>  </span><span class="hs-comment">-- ^ @since 4.2.0.0</span><span>
</span><span id="line-175"></span><span>             </span><span class="hs-special">,</span><span> </span><span id="local-6989586621679535847"><span id="local-6989586621679535849"><span id="local-6989586621679535851"><span id="local-6989586621679535853"><span id="local-6989586621679535855"><span id="local-6989586621679535859"><span class="annot"><span class="annottext">Ord SeekMode
Ord SeekMode
-&gt; ((SeekMode, SeekMode) -&gt; [SeekMode])
-&gt; ((SeekMode, SeekMode) -&gt; SeekMode -&gt; Int)
-&gt; ((SeekMode, SeekMode) -&gt; SeekMode -&gt; Int)
-&gt; ((SeekMode, SeekMode) -&gt; SeekMode -&gt; Bool)
-&gt; ((SeekMode, SeekMode) -&gt; Int)
-&gt; ((SeekMode, SeekMode) -&gt; Int)
-&gt; Ix SeekMode
(SeekMode, SeekMode) -&gt; Int
(SeekMode, SeekMode) -&gt; [SeekMode]
(SeekMode, SeekMode) -&gt; SeekMode -&gt; Bool
(SeekMode, SeekMode) -&gt; SeekMode -&gt; Int
forall a.
Ord a
-&gt; ((a, a) -&gt; [a])
-&gt; ((a, a) -&gt; a -&gt; Int)
-&gt; ((a, a) -&gt; a -&gt; Int)
-&gt; ((a, a) -&gt; a -&gt; Bool)
-&gt; ((a, a) -&gt; Int)
-&gt; ((a, a) -&gt; Int)
-&gt; Ix a
unsafeRangeSize :: (SeekMode, SeekMode) -&gt; Int
$cunsafeRangeSize :: (SeekMode, SeekMode) -&gt; Int
rangeSize :: (SeekMode, SeekMode) -&gt; Int
$crangeSize :: (SeekMode, SeekMode) -&gt; Int
inRange :: (SeekMode, SeekMode) -&gt; SeekMode -&gt; Bool
$cinRange :: (SeekMode, SeekMode) -&gt; SeekMode -&gt; Bool
unsafeIndex :: (SeekMode, SeekMode) -&gt; SeekMode -&gt; Int
$cunsafeIndex :: (SeekMode, SeekMode) -&gt; SeekMode -&gt; Int
index :: (SeekMode, SeekMode) -&gt; SeekMode -&gt; Int
$cindex :: (SeekMode, SeekMode) -&gt; SeekMode -&gt; Int
range :: (SeekMode, SeekMode) -&gt; [SeekMode]
$crange :: (SeekMode, SeekMode) -&gt; [SeekMode]
</span><a href="GHC.Ix.html#Ix"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ix</span></a></span></span></span></span></span></span></span><span>   </span><span class="hs-comment">-- ^ @since 4.2.0.0</span><span>
</span><span id="line-176"></span><span>             </span><span class="hs-special">,</span><span> </span><span id="local-6989586621679535809"><span id="local-6989586621679535811"><span id="local-6989586621679535815"><span id="local-6989586621679535818"><span id="local-6989586621679535820"><span id="local-6989586621679535830"><span id="local-6989586621679535836"><span id="local-6989586621679535844"><span class="annot"><span class="annottext">Int -&gt; SeekMode
SeekMode -&gt; Int
SeekMode -&gt; [SeekMode]
SeekMode -&gt; SeekMode
SeekMode -&gt; SeekMode -&gt; [SeekMode]
SeekMode -&gt; SeekMode -&gt; SeekMode -&gt; [SeekMode]
(SeekMode -&gt; SeekMode)
-&gt; (SeekMode -&gt; SeekMode)
-&gt; (Int -&gt; SeekMode)
-&gt; (SeekMode -&gt; Int)
-&gt; (SeekMode -&gt; [SeekMode])
-&gt; (SeekMode -&gt; SeekMode -&gt; [SeekMode])
-&gt; (SeekMode -&gt; SeekMode -&gt; [SeekMode])
-&gt; (SeekMode -&gt; SeekMode -&gt; SeekMode -&gt; [SeekMode])
-&gt; Enum SeekMode
forall a.
(a -&gt; a)
-&gt; (a -&gt; a)
-&gt; (Int -&gt; a)
-&gt; (a -&gt; Int)
-&gt; (a -&gt; [a])
-&gt; (a -&gt; a -&gt; [a])
-&gt; (a -&gt; a -&gt; [a])
-&gt; (a -&gt; a -&gt; a -&gt; [a])
-&gt; Enum a
enumFromThenTo :: SeekMode -&gt; SeekMode -&gt; SeekMode -&gt; [SeekMode]
$cenumFromThenTo :: SeekMode -&gt; SeekMode -&gt; SeekMode -&gt; [SeekMode]
enumFromTo :: SeekMode -&gt; SeekMode -&gt; [SeekMode]
$cenumFromTo :: SeekMode -&gt; SeekMode -&gt; [SeekMode]
enumFromThen :: SeekMode -&gt; SeekMode -&gt; [SeekMode]
$cenumFromThen :: SeekMode -&gt; SeekMode -&gt; [SeekMode]
enumFrom :: SeekMode -&gt; [SeekMode]
$cenumFrom :: SeekMode -&gt; [SeekMode]
fromEnum :: SeekMode -&gt; Int
$cfromEnum :: SeekMode -&gt; Int
toEnum :: Int -&gt; SeekMode
$ctoEnum :: Int -&gt; SeekMode
pred :: SeekMode -&gt; SeekMode
$cpred :: SeekMode -&gt; SeekMode
succ :: SeekMode -&gt; SeekMode
$csucc :: SeekMode -&gt; SeekMode
</span><a href="GHC.Enum.html#Enum"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Enum</span></a></span></span></span></span></span></span></span></span></span><span> </span><span class="hs-comment">-- ^ @since 4.2.0.0</span><span>
</span><span id="line-177"></span><span>             </span><span class="hs-special">,</span><span> </span><span id="local-6989586621679535795"><span id="local-6989586621679535801"><span id="local-6989586621679535804"><span id="local-6989586621679535806"><span class="annot"><span class="annottext">ReadPrec [SeekMode]
ReadPrec SeekMode
Int -&gt; ReadS SeekMode
ReadS [SeekMode]
(Int -&gt; ReadS SeekMode)
-&gt; ReadS [SeekMode]
-&gt; ReadPrec SeekMode
-&gt; ReadPrec [SeekMode]
-&gt; Read SeekMode
forall a.
(Int -&gt; ReadS a)
-&gt; ReadS [a] -&gt; ReadPrec a -&gt; ReadPrec [a] -&gt; Read a
readListPrec :: ReadPrec [SeekMode]
$creadListPrec :: ReadPrec [SeekMode]
readPrec :: ReadPrec SeekMode
$creadPrec :: ReadPrec SeekMode
readList :: ReadS [SeekMode]
$creadList :: ReadS [SeekMode]
readsPrec :: Int -&gt; ReadS SeekMode
$creadsPrec :: Int -&gt; ReadS SeekMode
</span><a href="GHC.Read.html#Read"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Read</span></a></span></span></span></span></span><span> </span><span class="hs-comment">-- ^ @since 4.2.0.0</span><span>
</span><span id="line-178"></span><span>             </span><span class="hs-special">,</span><span> </span><span id="local-6989586621679535787"><span id="local-6989586621679535789"><span id="local-6989586621679535791"><span class="annot"><span class="annottext">Int -&gt; SeekMode -&gt; ShowS
[SeekMode] -&gt; ShowS
SeekMode -&gt; String
(Int -&gt; SeekMode -&gt; ShowS)
-&gt; (SeekMode -&gt; String) -&gt; ([SeekMode] -&gt; ShowS) -&gt; Show SeekMode
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [SeekMode] -&gt; ShowS
$cshowList :: [SeekMode] -&gt; ShowS
show :: SeekMode -&gt; String
$cshow :: SeekMode -&gt; String
showsPrec :: Int -&gt; SeekMode -&gt; ShowS
$cshowsPrec :: Int -&gt; SeekMode -&gt; ShowS
</span><a href="GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span> </span><span class="hs-comment">-- ^ @since 4.2.0.0</span><span>
</span><span id="line-179"></span><span>             </span><span class="hs-special">)</span><span>
</span><span id="line-180"></span><span>
</span><span id="line-181"></span></pre></body></html>